package com.groupfour.attendancemanagementsystem.dao;
/**
 * @version: V1.0
 * @author: 章珑赢
 * @className: GroupRatingDao
 * @packageName: dao
 * @description: 小组评分处理层
 * @data: 2022/4/23
 */
import com.groupfour.attendancemanagementsystem.entity.DTO.GroupDetailDTO;
import com.groupfour.attendancemanagementsystem.entity.DTO.GroupRatingDTO;
import com.groupfour.attendancemanagementsystem.entity.VO.GroupDetailVO;
import com.groupfour.attendancemanagementsystem.entity.VO.GroupRatingVO;
import com.groupfour.attendancemanagementsystem.entity.VO.HomeWorkDetailsVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
@Mapper
public interface GroupRatingDao {
    /**
     * @version: V1.0
     * @author: 章珑赢
     * @methodsName: SelectAllGroupRating
     * @description: 查询所有小组评分
     * @param:  userCode(用户编号)
     * @return: Object
     * @throws: 无
     **/
    List<GroupRatingDTO> SelectAllGroupRating(@Param("userCode")String userCode);
    /**
     * @version: V1.0
     * @author: 章珑赢
     * @methodsName: SelectByProjectNameOrGroupName
     * @description: 根据项目名称或小组名称查询所有小组评分
     * @param:  projectName(项目名称)，groupName(小组评分)
     * @return: Object
     * @throws: 无
     **/
    List<GroupRatingDTO> selectGroupRating(@Param("projectName") String projectName, @Param("groupName") String groupName,@Param("userCode") String userCode);
    /**
     * @version: V1.0
     * @author: 章珑赢
     * @methodsName: groupAccount
     * @description: 根据项目组编号查询小组人员数
     * @param:  groupCode(项目组编号)
     * @return: Object
     * @throws: 无
     **/
    int groupAccount(@Param("groupCode") String groupCode);
    /**
     * @version: V1.0
     * @author: 章珑赢
     * @methodsName: SelectGroupDetails
     * @description: 查询小组的详情
     * @param:  groupCode（小组编号）
     * @return: Object
     * @throws: 无
     **/
    GroupDetailVO SelectGroupDetails(@Param("groupCode") String groupCode);
    /**
     * @version: V1.0
     * @author: 章珑赢
     * @methodsName: SelectGroupDetails
     * @description: 查询小组的项目成员
     * @param:  groupCode（小组编号）
     * @return: Object
     * @throws: 无
     **/
     List<GroupDetailDTO> SelectGroupStudent(@Param("groupCode") String groupCode);
    /**
     * @version: V1.0
     * @author: 章珑赢
     * @methodsName: SelectGroupDetails
     * @description: 查询小组的实训老师
     * @param:  groupCode（小组编号）
     * @return: Object
     * @throws: 无
     **/
    List<GroupDetailDTO> SelectGroupTrainTeacher(@Param("groupCode") String groupCode);
    /**
     * @version: V1.0
     * @author: 章珑赢
     * @methodsName: SelectHomeWorks
     * @description: 查询小组的作业信息
     * @param:  groupCode（小组编号）
     * @return: Object
     * @throws: 无
     **/
    List<HomeWorkDetailsVO> SelectHomeWorks(@Param("groupCode") String groupCode,@Param("studentCode")String studentCode);
    /**
     * @version: V1.0
     * @author: 章珑赢
     * @methodsName: DoPersonalGradeAndComment
     * @description: 进行小组打分和评论
     * @param:  groupCode（小组编号），groupSyntnesisScore（小组分数），groupComment（小组评论）
     * @return: int
     * @throws: boolean
     **/
    boolean DoGroupGradeAndComment(@Param("groupSyntnesisScore") String  groupSyntnesisScore,@Param("groupComment") String  groupComment, @Param("groupCode") String groupCode );
    /**
     * @version: V1.0
     * @author: 章珑赢
     * @methodsName: selectDepartmentAndGroup
     * @description: 进行小组打分和评论
     * @param:  无
     * @return: Result
     * @throws: 无
     **/
    List<GroupRatingVO> selectCourseAndGroup();
}
